עצים מאוזנים Lecture 4 of Geger & Ita s slde brochure www.cs.techo.ac.l/~dag/courseds הגדרה: משפחת עצים תקרא מאוזנת אם (.h(t) = O(log Geger & Ita,
עצים מאוזנים Lecture 4 of Geger & Ita s slde brochure www.cs.techo.ac.l/~dag/courseds הגדרה: משפחת עצים תקרא מאוזנת אם (.h(t) = O(log עצי (Adelso-Velsky, Lads) AVL הגדרה: עץ AVL הוא עץ חיפוש בינרי שבו לכל צומת v התכונה: h(v left) h(v rght) דוגמאות Geger & Ita,
עצים מאוזנים Lecture 4 of Geger & Ita s slde brochure www.cs.techo.ac.l/~dag/courseds הגדרה: משפחת עצים תקרא מאוזנת אם (.h(t) = O(log עצי (Adelso-Velsky, Lads) AVL הגדרה: עץ AVL הוא עץ חיפוש בינרי שבו לכל צומת v התכונה: h(v left) h(v rght) דוגמאות * * * דוגמאות נגד Geger & Ita, * בצומת בו מופר האיזון
4 תרשים הוכחה למציאת חסם לגובה עץ AVL נגדיר משפחת עצים )עצי פיבונצי F,,F h, )Fboacc trees נראה שמספר הצמתים בעץ F h מקיים F h a< h עבור קבוע a. נראה שמספר הצמתים = T של עץ AVL כלשהו בגובה h גדול מ- F. h cs,techo
5 תרשים הוכחה למציאת חסם לגובה עץ AVL נגדיר משפחת עצים )עצי פיבונצי F,,F h, )Fboacc trees נראה שמספר הצמתים בעץ F h מקיים F h a< h עבור קבוע a. נראה שמספר הצמתים = T של עץ AVL כלשהו בגובה h גדול מ- F. h.> F h >a h מסקנה: AVL עם לכל עץ צמתים מתקיים: cs,techo
6 תרשים הוכחה למציאת חסם לגובה עץ AVL F,,F h, נגדיר משפחת עצים )עצי פיבונצי )Fboacc trees נראה שמספר הצמתים בעץ F h מקיים F h a< h עבור קבוע a.. F h גדול מ- h נראה שמספר הצמתים = T של עץ AVL כלשהו בגובה מסקנה: לכל עץ AVL עם צמתים מתקיים:.> F h a< h לפיכך הגובה h חסום ע"י.log a cs,techo
7 תרשים הוכחה למציאת חסם לגובה עץ AVL F,,F h, נגדיר משפחת עצים )עצי פיבונצי )Fboacc trees נראה שמספר הצמתים בעץ F h מקיים F h a< h עבור קבוע a.. F h גדול מ- h נראה שמספר הצמתים = T של עץ AVL כלשהו בגובה מסקנה: לכל עץ AVL עם צמתים מתקיים:.> F h a< h לפיכך הגובה h חסום ע"י.log a מסקנה: משפחת עצי AVL מאוזנת. cs,techo
8 תרשים הוכחה למציאת חסם לגובה עץ AVL F,,F h, נגדיר משפחת עצים )עצי פיבונצי )Fboacc trees נראה שמספר הצמתים בעץ F h מקיים F h a< h עבור קבוע a.. F h גדול מ- h נראה שמספר הצמתים = T של עץ AVL כלשהו בגובה מסקנה: לכל עץ AVL עם צמתים מתקיים:.> F h a< h לפיכך הגובה h חסום ע"י.log a מסקנה: משפחת עצי AVL מאוזנת.. הערה: עצי פיבונצי הם עצי AVL בהם הגובה גדל הכי מהר כפונקציה של cs,techo
חסם לגובה עץ AVL 9 נגדיר משפחת עצים )עצי פיבונצי :)Fboacc trees F F F F 3 F + F - F.h גובה לעץ F h טענה : לכל h, cs,techo
חסם לגובה עץ AVL נגדיר משפחת עצים )עצי פיבונצי :)Fboacc trees F F F F 3 F + F - F.h גובה לעץ F h טענה : לכל h, הוכחה: נכון עבור F ועבור.F נמשיך באינדוקציה. מתקיים לפי הגדרת עץ פיבונצי.heght(F + ) = heght(f ) + = + cs,techo
חסם לגובה עץ AVL נגדיר משפחת עצים )עצי פיבונצי :)Fboacc trees F F F F 3 F + F - F.h גובה לעץ F h טענה : לכל h, הוכחה: נכון עבור F ועבור.F נמשיך באינדוקציה. מתקיים לפי הגדרת עץ פיבונצי.heght(F + ) = heght(f ) + = + cs,techo. F h = + F h- + F h- F h- טענה :
F F חסם לגובה עץ AVL )המשך( טענה :3 יהי T עץ AVL בעל גובה.h אזי h. T F הוכחה: באינדוקציה על h. נכון עבור =h ועבור =h. cs,techo
F F T L R חסם לגובה עץ AVL )המשך( טענה :3 יהי T עץ AVL בעל גובה.h אזי h. T F הוכחה: באינדוקציה על h. נכון עבור =h ועבור =h. יהי T עץ AVL בעל גובה h. יהי L תת-העץ השמאלי ו- R תת-העץ הימני כמצויר. 3 cs,techo
F F T L R 4 חסם לגובה עץ AVL )המשך( טענה :3 יהי T עץ AVL בעל גובה.h אזי h. T F הוכחה: באינדוקציה על h. נכון עבור =h ועבור =h. יהי T עץ AVL בעל גובה h. יהי L תת-העץ השמאלי ו- R תת-העץ הימני כמצויר. תתי העצים R ו- L הם עצי AVL בגובה קטן מהגובה של T. cs,techo
F F T L R 5 חסם לגובה עץ AVL )המשך( טענה :3 יהי T עץ AVL בעל גובה.h אזי h. T F הוכחה: באינדוקציה על h. נכון עבור =h ועבור =h. יהי T עץ AVL בעל גובה h. יהי L תת-העץ השמאלי ו- R תת-העץ הימני כמצויר. בגובה קטן מהגובה של T. והשני בגובה -h או -h. AVL הם עצי L ו- R נאמר R( בגובה -h תתי העצים אחד מהם ( cs,techo
F F T L R 6 חסם לגובה עץ AVL )המשך( טענה :3 יהי T עץ AVL בעל גובה.h אזי h. T F הוכחה: באינדוקציה על h. נכון עבור =h ועבור =h. יהי T עץ AVL בעל גובה h. יהי L תת-העץ השמאלי ו- R תת-העץ הימני כמצויר. תתי העצים R ו- L הם עצי AVL בגובה קטן מהגובה של T. אחד מהם ( נאמר R( בגובה -h והשני בגובה -h או -h. לפי הנחת האינדוקציה, h-. R F cs,techo
F F T L R. L חסם לגובה עץ AVL בעל גובה h. )המשך(.. T אזי h F ועבור h= עבור h=.h טענה 3: יהי T עץ AVL הוכחה: באינדוקציה על בעל גובה h. נכון יהי T עץ AVL יהי L תת-העץ השמאלי ו- R תת-העץ הימני כמצויר. R 7 תתי העצים אחד מהם ו- L הם עצי AVL בגובה קטן מהגובה של T. והשני בגובה -h או -h.. R m{ F h-, F h- } = F h- בגובה -h F h- ( נאמר )R לפי הנחת האינדוקציה, לפי הנחת האינדוקציה וטענה, cs,techo
F F T L R. L חסם לגובה עץ AVL בעל גובה h. )המשך(.. T אזי h F ועבור h= עבור h=.h טענה 3: יהי T עץ AVL הוכחה: באינדוקציה על בעל גובה h. נכון יהי T עץ AVL יהי L תת-העץ השמאלי ו- R תת-העץ הימני כמצויר. R 8 תתי העצים אחד מהם ו- L הם עצי AVL בגובה קטן מהגובה של T. והשני בגובה -h או -h.. R m{ F h-, F h- } = F h- בגובה -h F h- ( נאמר )R לפי הנחת האינדוקציה, לפי הנחת האינדוקציה וטענה, לפיכך T הוא עץ בן לפחות h F צמתים שכן מתקיים: cs,techo
F F T L R. L חסם לגובה עץ AVL בעל גובה h. )המשך(.. T אזי h F ועבור h= עבור h=.h טענה 3: יהי T עץ AVL הוכחה: באינדוקציה על בעל גובה h. נכון יהי T עץ AVL יהי L תת-העץ השמאלי ו- R תת-העץ הימני כמצויר. R 9 תתי העצים אחד מהם ו- L הם עצי AVL בגובה קטן מהגובה של T. והשני בגובה -h או -h.. R m{ F h-, F h- } = F h- בגובה -h F h- ( נאמר )R לפי הנחת האינדוקציה, לפי הנחת האינדוקציה וטענה, לפיכך T הוא עץ בן לפחות h F צמתים שכן מתקיים: T = + R + L + F h- + F h- = F h cs,techo
מספרי פיבונצי : סדרת פיבונצי מוגדרת באופן הבא =, =, + = + - =, 3 =, 4 =3, 5 =5, 6 =8 5 מתקיים כאשר 5 וכן.68 5 נקרא יחס הזהב(. טענה 4: ( נובע גם עבור הערה: מכיוון שמתקיים 5 גדול. cs,techo
a x מספרי פיבונצי )המשך( הוכחת טענה 4: נתונה המשוואה הבאה. נניח פתרון מהצורה: cs,techo
a x a x מספרי פיבונצי )המשך( a x a x הוכחת טענה 4: נתונה המשוואה הבאה. נניח פתרון מהצורה: נציב במשוואה ונקבל: x x x 5 5 5 cs,techo
cs,techo 3 )ךשמה( יצנוביפ ירפסמ :4 הנעט תחכוה.האבה האוושמה הנותנ :הרוצהמ ןורתפ חיננ x a 5 :לבקנו האוושמב ביצנ 5 x x x x a x a x a 5 :ןורתפ הווהמ תונורתפ לש יראיניל ףורצ לכ ןכלו תיראיניל םישרפהה תאוושמ b a
cs,techo 4 )ךשמה( יצנוביפ ירפסמ :4 הנעט תחכוה.האבה האוושמה הנותנ :הרוצהמ ןורתפ חיננ x a 5 :לבקנו האוושמב ביצנ 5 x x x x a x a x a 5 :ןורתפ הווהמ תונורתפ לש יראיניל ףורצ לכ ןכלו תיראיניל םישרפהה תאוושמ b a ליבומ הפשה יאנתב שומיש :םיעובקה תאיצמל a b b a b a 5 5 5 a a a
cs,techo 5 )ךשמה( יצנוביפ ירפסמ :4 הנעט תחכוה.האבה האוושמה הנותנ :הרוצהמ ןורתפ חיננ x a 5 :לבקנו האוושמב ביצנ 5 x x x x a x a x a 5 :ןורתפ הווהמ תונורתפ לש יראיניל ףורצ לכ ןכלו תיראיניל םישרפהה תאוושמ b a ליבומ הפשה יאנתב שומיש :םיעובקה תאיצמל a b b a b a 5 5 5 a a a 5 אוה האוושמה ןורתפ ךכיפל :
6 ניתוח גובה עץ AVL הוא מספר F = +3 - יש צמתים כאשר F F F F 3 טענה 5: לעץ פיבונצי F פיבונצי ה-. לדוגמא: 3 =, 4 =3, 5 =5, 6 =8
7 ניתוח גובה עץ AVL הוא מספר F = +3 - יש צמתים כאשר F F F F 3 טענה 5: לעץ פיבונצי F פיבונצי ה-. לדוגמא: 3 =, 4 =3, 5 =5, 6 =8
8 ניתוח גובה עץ AVL F F F הוא מספר F F F = +3 - יש צמתים כאשר טענה 5: לעץ פיבונצי F פיבונצי ה-. הוכחה: לדוגמא: מתקיימת המשוואה הרקורסיבית הבאה: F F F F 3 3 =, 4 =3, 5 =5, 6 =8
9 ניתוח גובה עץ AVL F F F הוא מספר F F F = +3 - יש צמתים כאשר 3 =, 4 =3, 5 =5, 6 =8 טענה 5: לעץ פיבונצי F פיבונצי ה-. הוכחה: לדוגמא: מתקיימת המשוואה הרקורסיבית הבאה: F F F F 3 במקום לפתור משוואה זו ישירות, את המשוואה שכבר פתרנו. נבצע שנוי משתנים כדי לקבל
3 ניתוח גובה עץ AVL F F F הוא מספר F F F = +3 - יש צמתים כאשר טענה 5: לעץ פיבונצי F פיבונצי ה-. הוכחה: לדוגמא: מתקיימת המשוואה הרקורסיבית הבאה: F F F F 3 במקום לפתור משוואה זו ישירות, נבצע שנוי משתנים כדי לקבל את המשוואה שכבר פתרנו. יהי t מספר הצמתים ב- F ועוד אחד. כלומר מתקיים -. F = t 3 =, 4 =3, 5 =5, 6 =8
3 ניתוח גובה עץ AVL t t t F F F t הוא מספר F F F = +3 - יש צמתים כאשר טענה 5: לעץ פיבונצי F פיבונצי ה-. הוכחה: לדוגמא: מתקיימת המשוואה הרקורסיבית הבאה: F F F F 3 במקום לפתור משוואה זו ישירות, נבצע שנוי משתנים כדי לקבל את המשוואה שכבר פתרנו. יהי t מספר הצמתים ב- F ועוד אחד. כלומר מתקיים -. F = t 3 =, 4 =3, 5 =5, 6 =8 t נציב במשוואה הרקורסיבית ונקבל: t t t 3
3 ניתוח גובה עץ AVL t t t F F F t t הוא מספר F F F = +3 - יש צמתים כאשר טענה 5: לעץ פיבונצי F פיבונצי ה-. הוכחה: לדוגמא: מתקיימת המשוואה הרקורסיבית הבאה: F F F F 3 במקום לפתור משוואה זו ישירות, נבצע שנוי משתנים כדי לקבל את המשוואה שכבר פתרנו. יהי t מספר הצמתים ב- F ועוד אחד. כלומר מתקיים -. F = t 3 =, 4 =3, 5 =5, 6 =8 t נציב במשוואה הרקורסיבית ונקבל: t t t 3 זו המשואה של מספרי פיבונצי כשנקודת ההתחלה מוזזת 3 בשלושה אינדקסים ולכן מתקיים:
33 ניתוח גובה עץ AVL t t t F F F t t הוא מספר F F F = +3 - יש צמתים כאשר טענה 5: לעץ פיבונצי F פיבונצי ה-. הוכחה: לדוגמא: מתקיימת המשוואה הרקורסיבית הבאה: F F F F 3 במקום לפתור משוואה זו ישירות, נבצע שנוי משתנים כדי לקבל את המשוואה שכבר פתרנו. יהי t מספר הצמתים ב- F ועוד אחד. כלומר מתקיים -. F = t 3 =, 4 =3, 5 =5, 6 =8 t נציב במשוואה הרקורסיבית ונקבל: t t t 3 3 t t זו המשואה של מספרי פיבונצי כשנקודת ההתחלה מוזזת בשלושה אינדקסים ולכן מתקיים: הוכחה פורמלית מתקבלת באינדוקציה על. בסיס t האינדוקציה: 3 3 t t 3 4 צעד האינדוקציה: 4
34 ניתוח גובה עץ AVL )המשך( טענה 6: יהי T עץ AVL בן צמתים וגובה h, אזי (.h=o(log cs,techo
ניתוח גובה עץ AVL )המשך( 35 טענה 6: יהי T עץ AVL בן צמתים וגובה h, אזי (.h=o(log T לאור טענה 3 מתקיים: F h cs,techo
ניתוח גובה עץ AVL )המשך( 36 טענה 6: יהי T עץ AVL בן צמתים וגובה h, אזי (.h=o(log T לאור טענה 3 מתקיים: F h F h h h3 h3 h3 3 5 5 לאור טענות 4 5, מתקיים: cs,techo
ניתוח גובה עץ AVL )המשך( 37 טענה 6: יהי T עץ AVL בן צמתים וגובה h, אזי (.h=o(log h T לאור טענה 3 מתקיים: F h F h h 3 log h3 h3 h3 3 5 5 5( ) לאור טענות 4 5, מתקיים: לקיחת לוגריתם משני צדי המשוואה : cs,techo
ניתוח גובה עץ AVL )המשך( 38 טענה 6: יהי T עץ AVL בן צמתים וגובה h, אזי (.h=o(log h T לאור טענה 3 מתקיים: F h F h h 3 log h3 h3 h3 3 5 5 5( ) לאור טענות 4 5, מתקיים: לקיחת לוגריתם משני צדי המשוואה : h log log 53 cs,techo
ניתוח גובה עץ AVL )המשך( 39 טענה 6: יהי T עץ AVL בן צמתים וגובה h, אזי (.h=o(log h T לאור טענה 3 מתקיים: F h F h h 3 log h3 h3 h3 3 5 5 5( ) לאור טענות 4 5, מתקיים: לקיחת לוגריתם משני צדי המשוואה : h log log 53 h O(log ) cs,techo
איזון בעץ AVL מטענה 6 נובע שזמן החיפוש בעץ AVL הוא (.O(log נצטרך לדאוג שלאחר הכנסה או הוצאה, העץ הנותר יהיה עץ.AVL 4 4 8 6 3 4 5 4 9 9 cs,techo
4 איזון בעץ AVL מטענה 6 נובע שזמן החיפוש בעץ AVL הוא (.O(log נצטרך לדאוג שלאחר הכנסה או הוצאה, העץ הנותר יהיה עץ.AVL 4 8 6 3 4 5 4 9 9 8 9 8 cs,techo 9 8 לאחר הוספת האיבר 8 נתקבל עץ שאינו עץ.AVL אבל נתן לשנות את תת העץ שבו הופר האיזון בצורה הבאה: תיקון כזה נקרא גלגול. בזמן הוצאה קיימת הפרת איזון דומה. למשל בהוצאת 9.
איזון בעץ AVL )המשך( 4 עבור צומת v בעץ בינרי נסמן: v. גובה תת העץ השמאלי של h L (v) v. גובה תת העץ הימני של h R (v) - גורם האיזון Factor) (Balace מחושב כהפרש הגבהים: (v) BF(v) = h L (v) h R - 8-5 לדוגמא: 6 - + 4 + 4 3 + 9 מצד שמאל של כל צומת מסומן גורם האיזון. 9 cs,techo
איזון בעץ AVL )המשך( 43 עבור צומת v בעץ בינרי נסמן: v. גובה תת העץ השמאלי של h L (v) v. גובה תת העץ הימני של h R (v) - גורם האיזון Factor) (Balace מחושב כהפרש הגבהים: (v) BF(v) = h L (v) h R - 8-5 לדוגמא: 6 - + 4 + 4 3 + 9 מצד שמאל של כל צומת מסומן גורם האיזון. 9 8 אחרי ההכנסה של 8 גורם האיזון מופר על מסלול ההכנסה. cs,techo
אבחנות 44 - - 8-5 6 - + 4 + 4 3 + 9 cs,techo 9
אבחנות. הצמתים היחידים שאולי הופר בהם האיזון הם הצמתים לאורך מסלול הכנסה/הוצאה. 45 - - 8-5 6 - + 4 + 4 3 + 9 cs,techo 9
אבחנות הצמתים היחידים שאולי הופר בהם האיזון הם הצמתים לאורך מסלול הכנסה/הוצאה. אם עבור צומת v במסלול הנ"ל גובה העץ ששורשו v לא השתנה אזי גורמי האיזון בצמתים שמעליו במסלול לא השתנו... 46 - - 8-5 6 - + 4 + 4 3 + 9 cs,techo 9
אבחנות הצמתים היחידים שאולי הופר בהם האיזון הם הצמתים לאורך מסלול הכנסה/הוצאה. אם עבור צומת v במסלול הנ"ל גובה העץ ששורשו v לא השתנה אזי גורמי האיזון בצמתים שמעליו במסלול לא השתנו. אם גורם האיזון הופך ל- או ל -, אזי יש לבצע גלגול על מנת שהעץ יחזור להיות עץ.AVL...3 47 - - 8-5 6 - + 4 + 4 3 + 9 cs,techo 9
אבחנות AVL הצמתים היחידים שאולי הופר בהם האיזון הם הצמתים לאורך מסלול הכנסה/הוצאה. אם עבור צומת v במסלול הנ"ל גובה העץ ששורשו v לא השתנה אזי גורמי האיזון בצמתים שמעליו במסלול לא השתנו. אם גורם האיזון הופך ל- או ל -, אזי יש לבצע גלגול על מנת שהעץ יחזור להיות עץ.AVL גלגול פעולה המתבצעת על צומת שהופר בו האיזון על מנת להחזירו לתחום המותר ] -[....3.4 48 - - 8-5 6 - + 4 + 4 3 + 9 cs,techo 9
אבחנות AVL הצמתים היחידים שאולי הופר בהם האיזון הם הצמתים לאורך מסלול הכנסה/הוצאה. אם עבור צומת v במסלול הנ"ל גובה העץ ששורשו v לא השתנה אזי גורמי האיזון בצמתים שמעליו במסלול לא השתנו. אם גורם האיזון הופך ל- או ל -, אזי יש לבצע גלגול על מנת שהעץ יחזור להיות עץ.AVL גלגול פעולה המתבצעת על צומת שהופר בו האיזון על מנת להחזירו לתחום המותר ] -[. גורם האיזון לא יכול להיות גדול מ- בערכו המוחלט כי בכל הכנסה/הוצאה הוא משתנה ב- לכל היותר....3.4.5 49 - - 8-5 6 - + 4 + 4 3 + 9 cs,techo 9
סוגי הגלגולים סוג הגלגול, כלומר הדרך לתקן חוסר איזון בצומת, תלוי בצורה בה האיזון מופר. נתן לסווג חוסר איזון בארבע קטגוריות שונות המכסות את כל המקרים. גלגול LL גלגול LR גלגול RL גלגול RR 5 + + - - + - + - cs,techo
סוגי הגלגולים סוג הגלגול, כלומר הדרך לתקן חוסר איזון בצומת, תלוי בצורה בה האיזון מופר. נתן לסווג חוסר איזון בארבע קטגוריות שונות המכסות את כל המקרים. גלגול LL גלגול LR גלגול RL גלגול RR 5 + + - - + - + - v L בשורש v בבן השמאלי בבן הימני v R הגלגול המתאים LL BF(v L ) BF(v)= LR BF(v L ) = - BF(v)= RR BF(v R ) BF(v)= - cs,techo RL BF(v R ) = BF(v)= -
5 + B + LL לפני הכנסת v: גובה העץ הוא + h. גלגול ל- + h. A + הוכנס צומת v שהגדיל את גובה A L גלגול : LL יעביר את A לשורש v A L h A R B R מצד ימין של הצמתים מסומנים גורמי האיזון שהשתנו.
53 + B + LL לפני הכנסת v: גובה העץ הוא + h. גלגול ל- + h. A + הוכנס צומת v שהגדיל את גובה A L גלגול : LL יעביר את A לשורש v A L h A R A B R מצד ימין של הצמתים מסומנים גורמי האיזון שהשתנו. אחרי הכנסת v: h B גובה העץ לאחר הגלגול הוא + h, כמו לפני ההכנסה. השורש מאוזן. שינינו )(O מצביעים ולכן זמן הגלגול )(O. A L v A R B R
54 A - + + C LR לפני הכנסת איבר v: גלגול A L h- v B L B + B R C R h הוכנס איבר ל- B L שגרם לו להעלות את גובהו ל- h. גלגול :LR
55 A - + + C LR לפני הכנסת איבר v: גלגול A L h- v A B L B + B R B C R - C h הוכנס איבר ל- B L שגרם לו להעלות את גובהו ל- h. גלגול :LR גובה העץ אחרי הגלגול הוא + h, כמו לפני ההכנסה. h B L h- B R h שינינו )(O מצביעים ולכן זמן הגלגול )(O. A L v C R
דוגמא להכנסת ערך x לעץ AVL הוסף 8: 56 8 5 4 6 3 4 + 4 9 9 8 cs,techo
דוגמא להכנסת ערך x לעץ AVL הוסף 8: 57 8 5 4 6 3 4 + 4 9 8 9 8 5 4 6 3 4 4 9 9 לאחר גלגול :LL cs,techo 8
דוגמא להכנסת ערך x לעץ AVL AVL 58 5 הוסף : - 6 3 7 4 4 7 4
דוגמא להכנסת ערך x לעץ AVL AVL 59 5 הוסף : - 6 3 7 4 4 7 4 3 5 לאחר גלגול :LR 4 6 7 4 7 4
6 דוגמא להכנסת ערך x לעץ AVL - הוסף 5 )נחוץ גלגול )RL 8 9 6 3 5 7 3 9 5 לאחר גלגול :RL
6 דוגמא להכנסת ערך x לעץ AVL - הוסף 5 )נחוץ גלגול )RL 8 9 6 3 5 7 3 9 5-3 לאחר גלגול :RL 8 9 6 7 5 5 3 9
6 דוגמא להכנסת ערך x לעץ AVL - הוסף 5 )נחוץ גלגול )RL 8 9 6 3 5 7 3 9 5-3 לאחר גלגול :RL 8 9 6 7 5 5 3 9 בהכנסה, לאחר גלגול אחד העץ מאוזן מכיוון שגובה תת העץ בו נעשה השנוי לא השתנה.
אלגוריתם להכנסת ערך x לעץ AVL 63 הכנס את x כמו לעץ חיפוש בינרי. יהי v העלה שהוסף. h(v) = בצע: v root כל עוד p = paret(v).4 + h(v) h(p) סיים. אם.5 h(p) = h(v) +.6 אם ב- p הופר האיזון, בצע גלגול וסיים. 7. v = p אחרת.8...3 cs,techo
אלגוריתם להכנסת ערך x לעץ AVL 64 הכנס את x כמו לעץ חיפוש בינרי. יהי v העלה שהוסף. h(v) = בצע: v root כל עוד p = paret(v).4 + h(v) h(p) סיים. אם.5 h(p) = h(v) +.6 אם ב- p הופר האיזון, בצע גלגול וסיים. 7. v = p אחרת.8...3? איך נחשב את paret(v) cs,techo
אלגוריתם להכנסת ערך x לעץ AVL 65 הכנס את x כמו לעץ חיפוש בינרי. יהי v העלה שהוסף.. h(v) =. כל עוד v root בצע:.3 p = paret(v).4.5 אם + h(v) h(p) סיים. h(p) = h(v) + אם ב- p הופר האיזון, בצע גלגול וסיים..6.7.8 אחרת v = p.v איך נחשב את paret(v)? נוציא אותו מהמחסנית בה נמצאים כל הצמתים על המסלול מהשורש ועד cs,techo
זמן ההכנסה מעץ AVL כיוון שהצומת בו עושים גלגול לא משנה את גובהו, מבצעים רק גלגול אחד. 66 O)h( מציאת המקום הדרוש להכנסה O)( הוספת הצומת מציאת המקום בו מופר האיזון O)h( )אם מופר( O)( תיקון האיזון O(h) = O(log ) סה"כ cs,techo
v צומת )הכנס( הוצא תקן את גורמי האיזון בצורה הבאה. החל מלמטה ועד לשורש בצע: אלגוריתם הוצאה/הכנסה כפי שהפעולה מתבצעת בעץ חיפוש בינרי. v לכל צומת עדכן את BF(v) אם, BF(v) = אם גובה תת העץ ששורשו v לאורך המסלול בצע גלגול והמשך כלפי מעלה. לא השתנה, סיים. אם גובה תת העץ השתנה ו- BF(v) תקין, המשך כלפי מעלה. 67 בהוצאה יתכן יותר מגלגול אחד. cs,techo
דוגמא להוצאה מעץ AVL 68-5 8 * 4 6 3 7 9 cs,techo
דוגמא להוצאה מעץ AVL 69-5 8 גלגול RL - 5 3-8 * 4 6 4 6 3 7 9 7 9 cs,techo
דוגמא להוצאה מעץ AVL 7-5 8 גלגול RL - 5 3-8 * 4 6 4 6 3 7 9 7 9 8 גלגול RR 5 3 6 9 cs,techo 4 7
בהוצאה יתכן גלגול בכל צומת על המסלול בין הצומת המוצא ובין השורש. דוגמא: הוצאה מעץ פיבונצי 7 * A C לדוגמא כאשר מוציאים עלה ראשון מעץ פיבונצי -.F B תרגיל לבית: מהי סדרת הגלגולים המתבצעת עלה ראשון מעץ פיבונצי - F. כאשר מוציאים cs,techo
זמן ההוצאה מעץ AVL 7 O)h( מציאת המקום הדרוש להוצאה מציאת המקום בו מופר האיזון O)h( )אם מופר( O)h( תיקון האיזון )לכל היותר פעם בכל רמה( O(h) = O(log ) סה"כ עצי AVL מאפשרים חיפוש, הכנסה, הוצאה בזמן ( O(log cs,techo
זמן ההוצאה מעץ AVL 73 O)h( מציאת המקום הדרוש להוצאה מציאת המקום בו מופר האיזון O)h( )אם מופר( O)h( תיקון האיזון )לכל היותר פעם בכל רמה( O(h) = O(log ) סה"כ עצי AVL מאפשרים חיפוש, הכנסה, הוצאה בזמן ( O(log ראו הדגמה באתר הקורס )בחרו :(lks/avl tree amato http://www.cs.techo.ac.l/~cs348 cs,techo
Fu move demostrato (Buldg a AVL tree of heght 8 - YouTube) http://www.youtube.com/watch?v=jbbvss7n